package com.itlong.cloud.property.service;

import com.itlong.cloud.POJO.DTO.property.PropertyGroupGetPageDTO;
import com.itlong.cloud.POJO.PO.PropertyGroupPO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      部门业务处理接口
 * </desc>
 *
 * @createDate 2017/9/14
 */
public interface IPropertyGroupService {

    /**
     * <desc>
     *      保存部门
     * </desc>
     *
     * @param propertyGroupPO 部门实体
     * @return
     * @author Biao.R
     * @createDate 2017/10/17
     */
    Integer save(PropertyGroupPO propertyGroupPO) throws Exception;

    /**
     * <desc>
     *      更新部门
     * </desc>
     *
     * @param propertyGroupPO 部门实体
     * @return
     * @author Biao.R
     * @createDate 2017/10/17
     */
    Integer update(PropertyGroupPO propertyGroupPO) throws Exception;

    /**
     * <desc>
     *      获取分页数据
     * </desc>
     *@param     pageDTO 分页DTO
     * @return
     * @author Biao.R
     * @createDate 2017/10/17
     */
    Page<PropertyGroupPO> getPage(PropertyGroupGetPageDTO pageDTO) throws Exception;

    /**
     * <desc>
     *      根据id查询部门
     * </desc>
     *
     * @param propertyGroupPO 部门实体
     * @return
     * @author Biao.R
     * @createDate 2017/10/17
     */
    PropertyGroupPO getOne(PropertyGroupPO propertyGroupPO);

    /**
     * <desc>
     *      将人员分配至部门
     * </desc>
     *
     * @param groupId 部门id
     * @param allotUsers 待分配的用户id 多个，号分隔
     * @param userIds 当前列表所有用户id 多个，号分隔
     * @return
     * @author Biao.R
     * @createDate 2017/10/17
     */
    Integer saveGroupUsers(String groupId, String allotUsers, String userIds);

    /**
     * <desc>
     *      根据字段查询部门
     * <desc/>
     * @param   params  查询参数
     * @return List<PropertyGroupPO>    返回对象集合
     * @author Biao.R
     * @createDate 2017/10/18
     */
    List<PropertyGroupPO> getByFeilds(Map<String, Object> params);
}
